//echo hello; sleep 2; echo world
//hello 延迟两秒触发 world

/*
用 setTimeout 实现 sleep 效果
function fun() {
  console.log('hello');
  setTimeout(() => {
    console.log('world');
    setInterval(() => { }, 1000)
  }, 2000)
}
fun()
*/

/*
用 Promise 实例和 setTimeout 封装 sleep 方法
function sleep(time) {
  return new Promise(resolve=>
    setTimeout(resolve, time)
  )
}
function fun() {
  console.log('hello');
  sleep(2000).then(()=>{
    console.log('world');
    setInterval(() => { }, 1000)
  })
}
fun()
*/

//使用 node.js v15 引入的 Promise 版本的 setTimeout 实现 sleep
const {
  setTimeout,
} = require('node:timers/promises');

console.log('hello');
setTimeout(2000, 'world').then((res) => {
  console.log(res);  // Prints 'result'
});